Transform architecture for multiple neurosynaptic core circuits

ABSTRACT

Embodiments of the present invention provide a method for feature extraction using multiple neurosynaptic core circuits including one or more input core circuits for receiving input and one or more output core circuits for generating output. The method comprises receiving a set of input data via the input core circuits, and extracting a first set of features from the input data using the input core circuits. Each feature of the first set of features is based on a subset of the input data. The method further comprises reordering the first set of features using the input core circuits, and generating a second set of features by combining the reordered first set of features using the output core circuits. The second set of features comprises a set of features with reduced correlation. Each feature of the second set of features is based on the entirety of said set of input data.

This invention was made with Government support under HR0011-09-C-0002 awarded by Defense Advanced Research Projects Agency (DARPA). The Government has certain rights in this invention.

BACKGROUND

The present invention relates to neuromorphic and synaptronic computation, and in particular, a transform architecture for multiple neurosynaptic core circuits.

Neuromorphic and synaptronic computation, also referred to as artificial neural networks, are computational systems that permit electronic systems to essentially function in a manner analogous to that of biological brains. Neuromorphic and synaptronic computation do not generally utilize the traditional digital model of manipulating 0s and 1s. Instead, neuromorphic and synaptronic computation create connections between processing elements that are roughly functionally equivalent to neurons of a biological brain. Neuromorphic and synaptronic computation may comprise various electronic circuits that are modeled on biological neurons.

In biological systems, the point of contact between an axon of a neural module and a dendrite on another neuron is called a synapse, and with respect to the synapse, the two neurons are respectively called pre-synaptic and post-synaptic. The essence of our individual experiences is stored in conductance of the synapses. The synaptic conductance changes with time as a function of the relative spike times of pre-synaptic and post-synaptic neurons, as per spike-timing dependent plasticity (STDP). The STDP rule increases the conductance of a synapse if its post-synaptic neuron fires after its pre-synaptic neuron fires, and decreases the conductance of a synapse if the order of the two firings is reversed.

BRIEF SUMMARY

One embodiment provides a method for feature extraction using multiple neurosynaptic core circuits including one or more input core circuits for receiving input and one or more output core circuits for generating output. The method comprises receiving a set of input data via the input core circuits, and extracting a first set of features from the set of input data using the input core circuits. Each feature of the first set of features is based on a subset of the set of input data. The method further comprises reordering the first set of features using the input core circuits, and generating a second set of features by combining the reordered first set of features using the output core circuits. The second set of features comprises a set of features with reduced correlation. Each feature of the second set of features is based on the entirety of said set of input data.

Another embodiment provides a neuromorphic system for feature extraction. The neuromorphic system comprises a first set of neurosynaptic core circuits for receiving a set of input data, extracting a first set of features from the set of input data, and reordering the first set of features. Each feature of the first set of features is based on a subset of the set of input data. The neuromorphic system further comprises a second set of neurosynaptic core circuits for generating a second set of features by combining the reordered first set of features. The second set of features comprises a set of features with reduced correlation. Each feature of the second set of features is based on the entirety of said set of input data.

These and other features, aspects and advantages of the present invention will become understood with reference to the following description, appended claims and accompanying figures.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 illustrates an example neurosynaptic core circuit (“core circuit”), in accordance with an embodiment of the invention;

FIG. 2 illustrates a synaptic crossbar of a core circuit, in accordance with an embodiment of the invention;

FIG. 3 illustrates an example transform architecture for multiple core circuits, in accordance with an embodiment of the invention;

FIG. 4 illustrates example transforms for each compute phase of the transform architecture in FIG. 3, in accordance with an embodiment of the invention;

FIG. 5 illustrates a transform for a first compute phase of the transform architecture in FIG. 3, in accordance with an embodiment of the invention.

FIG. 6 illustrates a square matrix of the transform in FIG. 5, in accordance with an embodiment of the invention;

FIG. 7 illustrates another example transform architecture for multiple core circuits, in accordance with an embodiment of the invention;

FIG. 8 illustrates an example permutation matrix for the permutation phase of the transform architecture in FIG. 7, in accordance with an embodiment of the invention;

FIG. 9 illustrates a flowchart of an example process for feature extraction in a neuromorphic system comprising multiple core circuits; and

FIG. 10 is a high level block diagram showing an information processing system useful for implementing one embodiment of the present invention.

DETAILED DESCRIPTION

Embodiments of the invention relate to neuromorphic and synaptronic computation, and in particular, a transform architecture for multiple neurosynaptic core circuits. One embodiment provides a neuromorphic system for feature extraction. The system utilizes multiple neurosynaptic core circuits for receiving input and generating a set of features with reduced correlation for the input received. For example, in one embodiment, the input received may comprise multiple input features. The system generates a set of features with reduced correlation for the input features.

The term electronic neuron as used herein represents an architecture configured to simulate a biological neuron. An electronic neuron creates connections between processing elements that are roughly functionally equivalent to neurons of a biological brain. As such, a neuromorphic and synaptronic computation comprising electronic neurons according to embodiments of the invention may include various electronic circuits that are modeled on biological neurons. Further, a neuromorphic and synaptronic computation comprising electronic neurons according to embodiments of the invention may include various processing elements (including computer simulations) that are modeled on biological neurons. Although certain illustrative embodiments of the invention are described herein using electronic neurons comprising electronic circuits, the present invention is not limited to electronic circuits. A neuromorphic and synaptronic computation according to embodiments of the invention can be implemented as a neuromorphic and synaptronic architecture comprising circuitry, and additionally as a computer simulation. Indeed, embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements.

The term electronic axon as used herein represents an architecture configured to simulate a biological axon that transmits information from one biological neuron to different biological neurons. In one embodiment, an electronic axon comprises a circuit architecture. An electronic axon is functionally equivalent to axons of a biological brain. As such, neuromorphic and synaptronic computation involving electronic axons according to embodiments of the invention may include various electronic circuits that are modeled on biological axons. Although certain illustrative embodiments of the invention are described herein using electronic axons comprising electronic circuits, the present invention is not limited to electronic circuits.

In one embodiment, a neuromorphic system comprises a system that implements neuron models, synaptic models, neural algorithms, and/or synaptic algorithms. In one embodiment, a neuromorphic system comprises software components and/or hardware components, such as digital hardware, analog hardware or a combination of analog and digital hardware (i.e., mixed-mode).

FIG. 1 illustrates an example neurosynaptic core circuit (“core circuit”) 10, in accordance with an embodiment of the invention. The core circuit 10 comprises a plurality of electronic neurons 11 and a plurality of electronic incoming axons 15. The neurons 11 and the axons 15 are interconnected via an x×y synaptic crossbar 12, wherein x and y are integers greater than or equal to one. The crossbar 12 comprises multiple electronic synapse devices (“synapses”) 31, multiple rows/axon paths 26, and multiple columns/dendrite paths 34.

Each synapse 31 communicates neuronal firing events (e.g., spike events) between an axon 15 and a neuron 11. Specifically, each synapse 31 is located at cross-point junction between an axon path 26 and a dendrite path 34, such that a connection between the axon path 26 and the dendrite path 34 is made through said synapse 31. Each axon 15 is connected to an axon path 26, such that said axon 15 sends firing events to the connected axon path 26. Each neuron 11 is connected to a dendrite path 34, such that said neuron 11 receives firing events from the connected dendrite path 34.

In one embodiment, each neuron 11 receives input (e.g., incoming neuronal firing events, input data) via interconnected axons 15 and, in response to the input received, generates output (e.g., outgoing neuronal firing events) according to a neuronal activation function.

Each synapse 31 has a synaptic weight. The synaptic weights of the synapses 31 is represented by an x×y matrix W, wherein x and y are positive integers. A learning rule such as spike-timing dependent plasticity (STDP) may be applied to update the synaptic weights of the synapses 31.

In one embodiment, the synapses 31 are binary memory devices. For example, the synapses 31 are implemented using 1-bit static random-access memory (SRAM) cells. Each synapse 31 has a synaptic weight equal to “0” or “1”. In one embodiment, a synapse 31 with a synaptic weight “0” indicates that the synapse 31 is non-conducting. In another embodiment, a synapse 31 with a synaptic weight “0” indicates that the synapse 31 is not connected. In one embodiment, a synapse 31 with a synaptic weight “1” indicates that the synapse 31 is conducting. In another embodiment, a synapse 31 with a synaptic weight “1” indicates that the synapse 31 is connected.

In one embodiment, the neurons 11 are implemented using complementary metal-oxide semiconductor (CMOS) logic gates that receive incoming firing events and generate outgoing firing events according to a neuronal activation function. In one embodiment, the neurons 11 include comparator circuits that generate outgoing firing events according to a neuronal activation function. The outgoing firing events are delivered to target axons 15, wherein the target axons 15 may reside in the same core circuit 10 or somewhere else in a larger system with many core circuits 10.

As shown in FIG. 1, the core circuit 10 has a corresponding router 55. The router 55 is an up-down-left-right mesh router configured to receive incoming address-event router packets targeting axons 15 of the core circuit 10. In one embodiment, each incoming address-event packet includes an incoming neuronal firing event encoded as an address (e.g., an address represented as bits) representing a target axon 15 of the core circuit 10. The axons 15 of the core circuit 10 receive incoming address-event packet from the router 55 via one or more communication paths/channels 5 (e.g., a bus). The router 55 is also configured to send outgoing address-event router packets generated by neurons 11 of the core circuit 10. In one embodiment, each outgoing address-event packet includes an outgoing neuronal firing event encoded as an address (e.g., an address represented as bits) representing a target axon 15 of the same core circuit 10 or a different core circuit 10. The neurons 11 of the core circuit 10 send outgoing address-event packet to the router 55 via one or more communication paths/channels 5 (e.g., a bus).

FIG. 2 illustrates a synaptic crossbar 12 of a core circuit 10 (FIG. 1), in accordance with an embodiment of the invention. The core circuit 10 receives input (e.g., input data) via the axons 15 of the core circuit 10. In one embodiment, each axon 15 has a corresponding axon type Ty. For example, the axon type Ty may be one of the following: axon type Type 0, axon type Type 1, axon type Type 2, and axon type Type 3. Let T_(j) denote an axon type of a j^(th) axon 15 of the crossbar 12.

As shown in FIG. 2, the axons 15 of the core circuit 10 include a first axon group 15A comprising at least one axon 15 having axon type Type 0, a second axon group 15B comprising at least one axon 15 having axon type Type 1, a third axon group 15C comprising at least one axon 15 having axon type Type 2, and a fourth axon group 15D comprising at least one axon 15 having axon type Type 3.

The synaptic strength (i.e., connection strength) between a neuron 11 and an axon 15 may be modulated. Each neuron 11 has a corresponding effective synaptic strength for each axon type Ty. Let S_(i,Tj) denote an effective synaptic strength between an i^(th) neuron 11 of the crossbar 12 and a j^(th) axon 15 having an axon type Ty_(j). Let W_(ij) represent a synaptic weight of a synapse 31 between the i^(th) neuron 11 and the j^(th) axon 15. When the i^(th) neuron 11 receives input (e.g., an incoming neuronal firing event) from the j^(th) axon 15, a membrane potential variable V of the i^(th) neuron 11 is adjusted based on the effective synaptic strength S_(i,Tj) and the synaptic weight W_(ij).

Feature extraction is essential to efficiently process, learn and associate high-dimensional data. One embodiment of the invention provides a transform architecture for signal processing in a neuromorphic system comprising multiple core circuits 10. The transform architecture as described herein initializes synaptic connectivity information (e.g., synaptic weights and effective synaptic strengths) for each core circuit 10 of the neuromorphic system. The transform architecture also reduces average correlation for feature extraction, thereby enabling the extraction of a set of features with reduced correlation.

FIG. 3 illustrates an example transform architecture 150 for signal processing in a neuromorphic system comprising multiple core circuits 10, in accordance with an embodiment of the invention. The core circuits 10 of the neuromorphic system may be used for feature extraction. In one embodiment, the transform architecture 150 is a compute-permute-compute architecture including a first compute phase 155, a permutation phase 160, and a second compute phase 165.

The core circuits 10 of the neuromorphic system are divided between the first compute phase 155 and the second compute phase 165. Each compute phase 155, 165 includes m core circuits 10, wherein m is a positive integer. The permutation phase 160 does not require additional core circuits 10. As shown in FIG. 3, the first compute phase 155 includes m input core circuits 10 for receiving input, such as input core circuits Core_(1,1), . . . , and Core_(1,m). The second compute phase 165 includes m output core circuits 10 for outputting a set of features based on input received by the input core circuits 10. As shown in FIG. 3, the second compute phase 165 includes output core circuits Core_(2,1), . . . , and Core_(2,m). Therefore, the transform architecture 150 utilizes a total of 2m core circuits 10.

Input 105 (e.g., incoming neuronal firing events, input from a different feature extraction layer, sensory inputs from external sensors, etc.) are assigned to axons 15 of the input core circuits 10. A neuron 11 generates an output (e.g., an outgoing neuronal firing event) when a membrane potential variable V of the neuron 11 reaches a pre-determined threshold value Th. In the permutation phase 160, output 106 generated by neurons 11 of the input core circuits 10 are permuted/reordered and routed, as permuted/reordered input 106A, to axons 15 of the output core circuits 10. Neurons 11 of the output core circuits 10 generate output 107 (e.g., outgoing neuronal firing events) from the permuted/reordered input 106A. The output 107 may be provided to classifiers or other feature extraction layers.

In one embodiment, the input 105 comprises a set of input data. The output 106 generated by the input core circuits 10 comprises a first set of features that the input core circuits 10 extracted from the set of input data. Each feature of the first set of features is based on a subset of the set of input data. In one example implementation, the first set of features represents local features/characteristics (e.g., local characteristics for a portion of an input image). The input core circuits 10 then permute/reorder the first set of features. The permuted/reordered first set of features are routed as the permuted/reordered input 106A to the axons 15 of the output core circuits 10.

In one embodiment, the transform architecture 150 reduces average correlation for feature extraction. The output core circuits 10 generate as the output 107 a second set of features, wherein the second set of features comprises a set of features with reduced correlation. The output core circuits 10 generate the second set of features with reduced correlation by combining the permuted/reordered first set of features. Each feature of the second set of features is based on the entire set of input data. In one example implementation, the transform architecture 150 minimizes average correlation for feature extraction such that the set of features extracted is a maximally uncorrelated set of features.

In one embodiment, feature extraction comprises reducing correlation between features. The input 105 may comprise a set of input features, and the transform architecture 150 reduces average correlation of the set of input features, such that the output 107 comprises a set of features with reduced correlation for the set of input features. In one example implementation, the transform architecture 150 minimizes average correlation for the set of input features such that the output 107 is a decorrelated set of features for the set of input features.

In one embodiment, each core circuit 10 includes a built-in router for permuting outgoing neuronal firing events generated by the neurons 11 of the core circuit 10. For example, the router 55 of a core circuit 10 may be further configured to permute output neuronal firing events generated by the neurons 11 of the core circuit 10.

As described in detail later herein, the crossbar 12 of each core circuit 10 is implemented (i.e., constructed) based on a corresponding transform. A transform corresponding to a core circuit 10 may be used to initialize synaptic connectivity information for the core circuit 10, such as synaptic weights and effective synaptic strengths.

FIG. 4 illustrates example transforms for the input core circuits 10 and the output core circuits 10 in FIG. 3, in accordance with an embodiment of the invention. Let T_(1,i) denote a transform corresponding to an input core circuit Core_(1,i), wherein i={1, . . . , m}. Synaptic connectivity information for an input core circuit Core_(1,i), is initialized/set using a corresponding transform T_(1,i). Let T_(2,i) denote a transform corresponding to an output core circuit Core_(2,i), wherein i={1, . . . , m}. Synaptic connectivity information for an output core circuit Core_(2,i), is initialized/set using a corresponding transform T_(2,i).

For example, to implement a 256×256 crossbar 12 for each input core circuit 10 and output core circuit 10, two 4×4 matrices J and G satisfying relation (1) provided below are chosen: JG=cH ₄  (1), wherein H₄ is a 4×4 Hadamard matrix, and wherein c is a constant. A Hadamard matrix is an orthogonal matrix with particular entries that are either +1 or −1. A Hadamard matrix has maximal determinant among matrices with entries of absolute value less than or equal to 1.

For example, a 4×4 matrix J represented in form (2) shown below and a 4×4 matrix G represented in form (3) shown below satisfy relation (1):

$\begin{matrix} {{J = \begin{pmatrix} {- 3} & 2 & 1 & {- 1} \\ 2 & {- 1} & {- 1} & 2 \\ 1 & {- 1} & 2 & 1 \\ 1 & 1 & {- 1} & 2 \end{pmatrix}},{and}} & (2) \\ {G = {\begin{pmatrix} {- 14} & {- 2} & {- 34} & {- 10} \\ {- 7} & {- 1} & {- 29} & 17 \\ 1 & 7 & {- 13} & 1 \\ 17 & {- 1} & 19 & {- 7} \end{pmatrix}.}} & (3) \end{matrix}$

A transform T_(1,i) for an input core circuit Core_(1,i) is defined as a column-wide concatenation of multiple Kronecker products. For example, as shown in FIG. 4, the transform T_(1,1) for the input core circuit Core_(1,1) is defined as a column-wide concatenation of a first Kronecker product J

A₁ and a second Kronecker product J

A₂, as shown in relation (4) below: T _(1,1) =[J

A ₁ J

A ₂]  (4), wherein A_(k) is a 64×32 matrix, and k={1, 2}. Let q represent the probability that an entry of the matrix Ã_(k) is 1.

The transform T_(1,2) for the input core circuit Core_(1,2) is defined as a column-wide concatenation of the first Kronecker product J

A₁ and the second Kronecker product J

A₂, as shown in relation (5) below: T _(1,2) =[J

A ₁−(J

A ₂)]  (5).

A matrix A_(k) is defined as shown in relation (6) below: A _(k) =Ã _(k) D  (6), wherein Ã_(k) is a 64×32 binary matrix, and wherein D is a 32×32 diagonal matrix of alternative {1, −1}'s. In one embodiment, the matrix Ã_(k) is random binary matrix comprising entries that are independent and binomially distributed. In another embodiment, the matrix Ã_(k) is learned based on the distribution of input 105 received by the input core circuits 10 using one or more machine learning techniques.

In one embodiment, the transform architecture 150 minimizes average correlation for feature extraction. For example, the average correlation for an extracted set of features is q²/8, wherein q is the probability of 1. The transform architecture 150 minimizes average correlation for feature extraction to q²/8 using only four core circuits 10 (i.e., 2 input core circuits 10 and 2 output core circuits 10). The diagonal matrix D is necessary for minimizing the average correlation for a set of features extracted during feature extraction to q²/8.

As described in detail later herein, the transforms T_(1,1) and T_(1,2) initialize/set synaptic weights of synapses 31 of the input core circuits Core_(1,1) and Core_(1,2), respectively, based on the matrices A₁ and A₂. Further, the transforms T_(1,1) and T_(1,2) initialize/set effective synaptic strengths for neurons 11 of the input core circuits Core_(1,1) and Core_(1,2), respectively, based on the matrix J.

A transform T_(2,i) for an output core circuit Core_(2,i) is defined as a row-wide concatenation of multiple Kronecker products. For example, as shown in FIG. 4, the transform T_(2,1) for the output core circuit Core_(2,1) is defined as a row-wide concatenation of a first Kronecker product G

B₁ and a second Kronecker product G

B₂, as shown in relation (7) below:

$\begin{matrix} {{T_{2,1} = \begin{pmatrix} {G \otimes B_{1}} \\ {G \otimes B_{2}} \end{pmatrix}},} & (7) \end{matrix}$ wherein B_(p) is a 32×64 binary matrix, and wherein p={1, 2}.

The transform T_(2,2) for the output core circuit Core_(2,2) is defined as a row-wide concatenation of the Kronecker product G

B₁ and the second Kronecker product G

B₂, as shown in relation (8) below:

$\begin{matrix} {T_{2,2} = {\begin{pmatrix} {G \otimes B_{1}} \\ {G \otimes B_{2}} \end{pmatrix}.}} & (8) \end{matrix}$

In one embodiment, the matrix B_(p) is random binary matrix comprising entries that are independent and binomially distributed. In another embodiment, the matrix B_(p) is learned based on the distribution of input 105 received by the input core circuits 10 using one or more machine learning techniques. Let q represent the probability that an entry of the matrix B_(p) is 1.

The matrix B_(p) represents random synaptic weights. As described in detail later herein, the transforms T_(2,1) and T_(2,2) initialize/set synaptic weights of synapses 31 of the output core circuits Core_(2,1) and Core_(2,2), respectively, based on the matrices B₁ and B₂. Further, the transforms T_(2,1) and T_(2,2) initialize/set effective synaptic strengths for neurons 11 of the output core circuits Core_(2,1) and Core_(2,2), respectively, based on the matrix G.

In another embodiment, an orthogonal matrix other than a Hadamard matrix may be used instead to satisfy relation (1). For example, a 4×4 orthogonal matrix O₄, as represented in form (9) provided below, may be used in lieu of a 4×4 Hadamard matrix H₄:

$\begin{matrix} {{O_{4} = \begin{pmatrix} a & b & c & d \\ {- b} & a & {- d} & c \\ {- c} & d & a & {- b} \\ {- d} & {- c} & b & a \end{pmatrix}},} & (9) \end{matrix}$ wherein a, b, c and d are integers between −255 and +255.

As another example, a Cayley transform may be applied to a skew symmetric matrix S to generate an orthogonal matrix Q, wherein the orthogonal matrix Q may be used in lieu of a Hadamard matrix H. The Cayley transform produces the orthogonal matrix Q using the equation (10) provided below: Q=(I−S)(I+S)⁻¹  (10), wherein I represent an identity matrix (i.e., a square matrix with ones on the main diagonal and zeros elsewhere). For example, the Cayley transform may be applied to an example 4×4 skew symmetric matrix S₄, as represented in form (11) provided below, to generate a 4×4 orthogonal matrix Q₄ that may be used in lieu of a 4×4 Hadamard matrix H₄:

$\begin{matrix} {S_{4} = {\begin{pmatrix} 0 & a & b & c \\ {- a} & 0 & d & e \\ {- b} & {- d} & 0 & f \\ {- c} & {- e} & {- f} & 0 \end{pmatrix}.}} & (11) \end{matrix}$

If the orthogonal matrix Q is a rational-valued orthogonal matrix, the orthogonal matrix Q may be normalized to obtain an integer-valued orthogonal matrix.

A crossbar 12 implemented using either a transform T_(1,i) or a transform T_(2,i) may be mapped to hardware.

FIG. 5 illustrates a transform T_(1,i) for an input core circuit 10 in FIG. 3, in accordance with an embodiment of the invention. As shown in FIG. 5, neurons 11 of an input core circuit 10 may include at least a first neuron group 11A comprising at least one neuron 11, a second neuron group 11B comprising at least one neuron 11, a third neuron group 11C comprising at least one neuron 11, a fourth neuron group 11D comprising at least one neuron 11, a fifth neuron group 11E comprising at least one neuron 11. The neurons 11 of the input core circuit 10 may include additional neuron groups.

Each entry j of the 4×4 matrix J is a scalar number that defines/sets an effective synaptic strength for at least one neuron 11 for an axon type Ty. Specifically, as shown in FIG. 5, j_(1,1), j_(1,2), j_(1,3) and j_(1,4) represent an effective synaptic strength for neurons 11 (e.g., neurons 11 of the neurons groups 11A, 11B, 11C, 11D and 11E) for the axon type Type 0. j_(2,1), j_(2,2), j_(2,3) and j_(2,4) represent an effective synaptic strength for neurons 11 for the axon type Type 1. j_(3,1), j_(3,2), j_(3,3) and j_(3,4) represent an effective synaptic strength for neurons 11 for the axon type Type 2. j_(4,1), j_(4,2), j_(4,3) and j_(4,4) represent an effective synaptic strength for neurons 11 for the axon type Type 3.

As shown in FIG. 5, the 256×256 matrix generated by the transform T_(1,i) comprises multiple smaller square matrices 175, such as matrices j_(1,1)A₁, j_(1,2)A₁, j_(1,3)A₁, j_(1,4)A₁, j_(1,1)A₂, . . . , and j_(4,4)A₂. Each entry of each matrix 175 represents a value that is be combined into a membrane potential variable V of a neuron 11 when the neuron 11 receives input from an axon 15 having axon type Ty.

Specifically, each entry of each matrix j_(1,1)A₁, j_(1,2)A₁, j_(1,3)A₁, j_(1,4A1), j_(1,1)A₂, . . . , j_(1,4)A₂ represents a value that is combined into a membrane potential variable V of a neuron 11 for the axon type Type 0. For example, each entry of the matrix j_(1,1)A₂ represents a value that is combined into a membrane potential variable V of a neuron 11 of the fifth neuron group 11E when the neuron 11 receives input from an axon 15 having axon type Type 0. Each entry of each matrix j_(2,1)A₁, j_(2,2)A₁, j_(2,3)A₁, j_(2,4)A₁, j_(2,1)A₂, . . . , j_(2,4)A₂ represents a value that is combined into a membrane potential variable V of a neuron 11 for the axon type Type 1. Each entry of each matrix j_(3,1)A₁, j_(3,2)A₁, j_(3,3)A₁, j_(3,4)A₁, j_(3,1)A₂, . . . , j_(3,4)A₂ represents a value that is combined into a membrane potential variable V of a neuron 11 for the axon type Type 2. Each entry of each matrix j_(4,1)A₁, j_(4,2)A₁, j_(4,3)A₁, j_(4,4)A₁, j_(4,1)A₂, . . . , j_(4,4)A₂ represents a value that is combined into a membrane potential variable V of a neuron 11 for the axon type Type 3.

FIG. 6 illustrates a square matrix 175 of the transform T_(1,1) in FIG. 5, in accordance with an embodiment of the invention. Each entry of the matrix j_(1,1)A₁ represents a value that is combined into a membrane potential variable V of a neuron 11 of the first neuron group 11A when the neuron 11 receives input from an axon 15 having axon type Type 0.

The matrix A₁ represents synaptic weights for synapses 31 interconnecting neurons 11 of the first neuron group 11A with axons 15 of Type 0.

Let D=diag(d₁, d₂, . . . , d₃₂), wherein d_(k)=(−1)^(k). The effective synaptic strength of an i^(th) neuron 11 is set to j_(1,1)d_(i).

FIG. 7 illustrates another example transform architecture 180 for signal processing in a neuromorphic system comprising a large number of multiple core circuits 10, in accordance with an embodiment of the invention. The core circuits 10 of the neuromorphic system may be used for feature extraction. Similar to the transform architecture 150 in FIG. 3, the transform architecture 180 is a compute-permute-compute architecture including a first compute phase 155, a permutation phase 160, and a second compute phase 165.

The core circuits 10 of the neuromorphic system are divided between the first compute phase 155 and the second compute phase 165. Each compute phase 155, 165 includes m core circuits 10, wherein m is a positive integer, and wherein m=2^(k). Specifically, the first compute phase 155 includes m input core circuits 10 for receiving input. The second compute phase 165 includes m output core circuits 10 for outputting a set of features based on input received by the input core circuits 10. The permutation phase 160 does not require additional core circuits 10. Therefore, the transform architecture 180 utilizes a total of 2m core circuits 10.

Input 105 (e.g., incoming neuronal firing events, input from a different feature extraction layer, sensory inputs from external sensors, etc.) are assigned to axons 15 of the input core circuits 10. A neuron 11 generates an output (e.g., an outgoing neuronal firing event) when a membrane potential variable V of the neuron 11 reaches a pre-determined threshold value Th. In the permutation phase 160, output 106 generated by neurons 11 of the input core circuits 10 are permuted/reordered and routed, as permuted/reordered input 106A, to axons 15 of the output core circuits 10. Neurons 11 of the output core circuits 10 generate output 107 (e.g., outgoing neuronal firing events) based on the permuted/reordered input 106A. The output 107 may be provided to classifiers or other feature extraction layers.

In one embodiment, the input 105 comprises a set of input data. The output 106 generated by the input core circuits 10 comprises a first set of features that the input core circuits 10 extracted from the set of input data. Each feature of the first set of features is based on a subset of the set of input data. In one example implementation, the first set of features represents local features/characteristics (e.g., local characteristics for a portion of an input image). The input core circuits 10 then permute/reorder the first set of features. The permuted/reordered first set of features are routed as the permuted/reordered input 106A to the axons 15 of the output core circuits 10.

In one embodiment, the transform architecture 150 reduces average correlation for feature extraction. The output core circuits 10 generate as the output 107 a second set of features, wherein the second set of features comprises a set of features with reduced correlation. The output core circuits 10 generate the second set of features with reduced correlation by combining the permuted/reordered first set of features. Each feature of the second set of features is based on the entire set of input data. In one example implementation, the transform architecture 150 minimizes average correlation for feature extraction such that the set of features extracted is a maximally uncorrelated set of features.

In one embodiment, feature extraction comprises reducing correlation between features. The input 105 may comprise a set of input features, and the transform architecture 150 reduces average correlation the set of input features, such that the output 107 comprises a set of features with reduced correlation for the set of input features. In one example implementation, the transform architecture 150 minimizes average correlation for the set of input features such that the output 107 is a decorrelated set of features for the set of input features.

In one embodiment, each core circuit 10 includes a built-in router for permuting outgoing neuronal firing events generated by the neurons 11 of the core circuit 10. For example, the router 55 of a core circuit 10 may be further configured to permute output neuronal firing events generated by the neurons 11 of the core circuit 10.

The crossbar 12 of each core circuit 10 is implemented (i.e., constructed) based on a corresponding transform. A transform corresponding to a core circuit 10 may be used to initialize synaptic connectivity information for the core circuit 10, such as synaptic weights and effective synaptic strengths.

Let T_(1,i) denote a transform corresponding to an i^(th) input core circuit 10 of the first compute phase 155, wherein i={1, . . . , m}. For example, transform T_(1,1) corresponds to a first input core circuit 10, transform T_(1,2) corresponds to a second input core circuit 10, . . . , and transform T_(1,m) corresponds to an m^(th) input core circuit 10. Synaptic connectivity information for an i^(th) input core circuit 10 is initialized/set using a corresponding transform T_(1,i).

Let T_(2,i) denote a transform corresponding to an i^(th) output core circuit 10 of the second compute phase 165, wherein i={1, . . . , m}. For example, transform T_(2,1) corresponds to a first output core circuit 10, transform T_(2,2) corresponds to a second output core circuit 10, . . . , and transform T_(2,m) corresponds to an m^(th) output core circuit 10. Synaptic connectivity information for an i^(th) output core circuit 10 is initialized/set using a corresponding transform T_(2,i).

The transforms T_(1,i) and T_(2,i) are based on a m×m matrix J and a m×m matrix G, respectively. The matrices J and G satisfy relation (12) provided below: JG=cH _(m)  (12), wherein H_(m) is a m×m Hadamard matrix, and wherein c is a constant.

The transform T_(1,i) is defined as a column-wide concatenation of multiple Kronecker products, as shown in relation (13) below: T _(1,i) =[h _(i,1)(J

A _(i,1))h _(i,2)(J

A _(i,2)) . . . h _(i,m)(J

A _(i,m)]  (13), wherein A_(i,k) is a 64×64/m binary matrix, wherein k={1, . . . , m}, and wherein h_(i,k) denotes an entry at row i and column k of the m×m Hadamard matrix H_(m). Let q represent the probability that an entry of the matrix A_(i,k) is 1.

In one embodiment, the matrix A_(i,k) is random binary matrix comprising entries that are independent and binomially distributed. In another embodiment, the matrix A_(i,k) is learned based on the distribution of input 105 received by the input core circuits 10 using one or more machine learning techniques.

In one embodiment, the transform architecture 180 minimizes average correlation for feature extraction. For example, the average correlation for an extracted set of features is q²/(4m), wherein q is the probability of 1. The transform architecture 180 minimizes average correlation for feature extraction to q²/(4m) using only 2m core circuits.

The transform T_(1,i) initializes/sets synaptic weights of synapses 31 of the i^(th) input core circuit 10 based on the matrices A_(i,1), A_(i,2), . . . , and A_(i,m). Further, the transform T_(1,i) initialize/set effective synaptic strengths for neurons 11 of the i^(th) input core circuit 10 based on the matrix J.

The transform T_(2,i) is defined as a row-wide concatenation of multiple Kronecker products, as shown in relation (14) below:

$\begin{matrix} {{T_{2,i} = \begin{pmatrix} {G \otimes B_{i,1}} \\ {G \otimes B_{i,2}} \\ \vdots \\ {G \otimes B_{i,m}} \end{pmatrix}},} & (14) \end{matrix}$ wherein B_(i,k) is a 64/m×64 binary matrix, and wherein k={1, . . . , m}. Let q represent the probability that an entry of the matrix B_(i,k) is 1.

In one embodiment, the matrix B_(i,k) is random binary matrix comprising entries that are independent and binomially distributed. In another embodiment, the matrix B_(i,k) is learned based on the distribution of input 105 received by the input core circuits 10 using one or more machine learning techniques.

The matrix B_(i,k) represents random synaptic weights. The transform T_(2,i) initializes/sets synaptic weights of synapses 31 of the i^(th) output core circuit 10 based on the matrices B_(i,1), B_(i,2), . . . , and B_(i,m). Further, the transform T_(2,i) initialize/set effective synaptic strengths for neurons 11 of the i^(th) output core circuit 10 based on the matrix G.

In another embodiment, an m×m orthogonal matrix other than the m×m Hadamard matrix H_(m) may be used instead to satisfy relation (12).

FIG. 8 illustrates an example permutation matrix P for the permutation phase 160 of the transform architecture 180 in FIG. 7, in accordance with an embodiment of the invention. Let matrix P represent a permutation of output 106 (e.g., outgoing neuronal firing events) generated by the neurons 11 of the input core circuits 10. Let N represent the size of the synaptic crossbar 12 of each input core circuit 10. Let m represent the number of core circuits 10 in each compute phase 155, 165. Let I represent an identity matrix. In one embodiment, N is 256 (i.e., the synaptic crossbar 12 of each input core circuit 10 is 256×256).

As stated above, each core circuit 10 includes a built-in router configured to permute output 106 generated by neurons 11 of the core circuit 10. The built-in router of each input core circuit 10 is configured to permute output 106 based on the matrix P.

FIG. 9 illustrates a flowchart of an example process 200 for feature extraction in a neuromorphic system comprising multiple core circuits, in accordance with an embodiment of the invention. In process block 201, assign all inputs to axons of core circuits of a first compute phase. In process block 202, permute outputs generated by neurons of the core circuits of the first compute phase. In process block 203, deliver the permuted outputs to axons of core circuits of the second compute phase. In process block 204, extract a set of features with reduced correlation for the inputs.

FIG. 10 is a high level block diagram showing an information processing system 300 useful for implementing one embodiment of the present invention. The computer system includes one or more processors, such as processor 302. The processor 302 is connected to a communication infrastructure 304 (e.g., a communications bus, cross-over bar, or network).

The computer system can include a display interface 306 that forwards graphics, text, and other data from the communication infrastructure 304 (or from a frame buffer not shown) for display on a display unit 308. The computer system also includes a main memory 310, preferably random access memory (RAM), and may also include a secondary memory 312. The secondary memory 312 may include, for example, a hard disk drive 314 and/or a removable storage drive 316, representing, for example, a floppy disk drive, a magnetic tape drive, or an optical disk drive. The removable storage drive 316 reads from and/or writes to a removable storage unit 318 in a manner well known to those having ordinary skill in the art. Removable storage unit 318 represents, for example, a floppy disk, a compact disc, a magnetic tape, or an optical disk, etc. which is read by and written to by removable storage drive 316. As will be appreciated, the removable storage unit 318 includes a computer readable medium having stored therein computer software and/or data.

In alternative embodiments, the secondary memory 312 may include other similar means for allowing computer programs or other instructions to be loaded into the computer system. Such means may include, for example, a removable storage unit 320 and an interface 322. Examples of such means may include a program package and package interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units 320 and interfaces 322 which allow software and data to be transferred from the removable storage unit 320 to the computer system.

The computer system may also include a communication interface 324. Communication interface 324 allows software and data to be transferred between the computer system and external devices. Examples of communication interface 324 may include a modem, a network interface (such as an Ethernet card), a communication port, or a PCMCIA slot and card, etc. Software and data transferred via communication interface 324 are in the form of signals which may be, for example, electronic, electromagnetic, optical, or other signals capable of being received by communication interface 324. These signals are provided to communication interface 324 via a communication path (i.e., channel) 326. This communication path 326 carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link, and/or other communication channels.

In this document, the terms “computer program medium,” “computer usable medium,” and “computer readable medium” are used to generally refer to media such as main memory 310 and secondary memory 312, removable storage drive 316, and a hard disk installed in hard disk drive 314.

Computer programs (also called computer control logic) are stored in main memory 310 and/or secondary memory 312. Computer programs may also be received via communication interface 324. Such computer programs, when run, enable the computer system to perform the features of the present invention as discussed herein. In particular, the computer programs, when run, enable the processor 302 to perform the features of the computer system. Accordingly, such computer programs represent controllers of the computer system.

From the above description, it can be seen that the present invention provides a system, computer program product, and method for implementing the embodiments of the invention. The present invention further provides a non-transitory computer-useable storage medium for hierarchical routing and two-way information flow with structural plasticity in neural networks. The non-transitory computer-useable storage medium has a computer-readable program, wherein the program upon being processed on a computer causes the computer to implement the steps of the present invention according to the embodiments described herein. References in the claims to an element in the singular is not intended to mean “one and only” unless explicitly so stated, but rather “one or more.” All structural and functional equivalents to the elements of the above-described exemplary embodiment that are currently known or later come to be known to those of ordinary skill in the art are intended to be encompassed by the present claims. No claim element herein is to be construed under the provisions of 35 U.S.C. section 112, sixth paragraph, unless the element is expressly recited using the phrase “means for” or “step for.”

The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated. 

What is claimed is:
 1. A method comprising: receiving a first set of features extracted by a first set of neurosynaptic core circuits from input data, wherein each neurosynaptic core circuit comprises a plurality of electronic synapse devices interconnecting a plurality of electronic axons to a plurality of electronic neurons, and each feature of the first set of features is based on a subset of the input data; permuting the first set of features utilizing built-in routers of the first set of neurosynaptic core circuits; and generating a second set of features with reduced correlation by combining the permuted first set of features utilizing a second set of neurosynaptic core circuits, wherein each feature of the second set of features is based on the entirety of the input data.
 2. The method of claim 1, further comprising: computing a Kronecker product between a first matrix and a second matrix; and programming at least one neurosynaptic core circuit of the second set of core circuits based on the product, wherein the programming comprises mapping the product onto the at least one neurosynaptic core circuit.
 3. The method of claim 2, wherein the first matrix is a binary matrix, and the second matrix is an orthogonal matrix.
 4. The method of claim 2, wherein the programming further comprises: for at least one neurosynaptic core circuit of the second set of core circuits: initializing synaptic weights for electronic synapse devices of the at least one neurosynaptic core circuit; and initializing effective synaptic strengths for electronic axons of the at least one neurosynaptic core circuit.
 5. The method of claim 1, wherein the second set of features comprises a maximally uncorrelated set of features.
 6. A system comprising a computer processor, a non-transitory computer-readable hardware storage medium, and program code embodied with the computer-readable hardware storage medium for execution by the computer processor to implement a method comprising: receiving a first set of features extracted by a first set of neurosynaptic core circuits from input data, wherein each neurosynaptic core circuit comprises a plurality of electronic synapse devices interconnecting a plurality of electronic axons to a plurality of electronic neurons, and each feature of the first set of features is based on a subset of the input data; permuting the first set of features utilizing built-in routers of the first set of neurosynaptic core circuits; and generating a second set of features with reduced correlation by combining the permuted first set of features utilizing a second set of neurosynaptic core circuits, wherein each feature of the second set of features is based on the entirety of the input data.
 7. The system of claim 6, further comprising: computing a Kronecker product between a first matrix and a second matrix; and programming at least one neurosynaptic core circuit of the second set of core circuits based on the product, wherein the programming comprises mapping the product onto the at least one neurosynaptic core circuit.
 8. The system of claim 7, wherein the first matrix is a binary matrix, and the second matrix is an orthogonal matrix.
 9. The system of claim 7, wherein the programming comprises: for at least one neurosynaptic core circuit of the second set of core circuits: initializing synaptic weights for electronic synapse devices of the at least one neurosynaptic core circuit; and initializing effective synaptic strengths for electronic axons of the at least one neurosynaptic core circuit.
 10. The system of claim 6, wherein the second set of features comprises a maximally uncorrelated set of features.
 11. A computer program product comprising a non-transitory computer-readable hardware storage medium having program code embodied therewith, the program code being executable by a computer to implement a method comprising: receiving a first set of features extracted by a first set of neurosynaptic core circuits from input data, wherein each neurosynaptic core circuit comprises a plurality of electronic synapse devices interconnecting a plurality of electronic axons to a plurality of electronic neurons, and each feature of the first set of features is based on a subset of the input data; permuting the first set of features utilizing built-in routers of the first set of neurosynaptic core circuits; and generating a second set of features with reduced correlation by combining the permuted first set of features utilizing a second set of neurosynaptic core circuits, wherein each feature of the second set of features is based on the entirety of the input data.
 12. The computer program product of claim 11, further comprising: computing a Kronecker product between a first matrix and a second matrix; and programming at least one neurosynaptic core circuit of the second set of core circuits based on the product, wherein the programming comprises mapping the product onto the at least one neurosynaptic core circuit.
 13. The computer program product of claim 12, wherein the first matrix is a binary matrix, and the second matrix is an orthogonal matrix.
 14. The computer program product of claim 12, wherein the programming comprises: for at least one neurosynaptic core circuit of the second set of core circuits: initializing synaptic weights for electronic synapse devices of the at least one neurosynaptic core circuit; and initializing effective synaptic strengths for electronic axons of the at least one neurosynaptic core circuit.
 15. The computer program product of claim 11, wherein the second set of features comprises a maximally uncorrelated set of features. 